//引入axios的依赖
import axios from 'axios'
//引入element-plus依赖
import {ElMessage} from "element-plus";
import {store} from "core-js/internals/reflect-metadata";
import router from "@/router";

//设置默认前缀
axios.defaults.baseURL="http://localhost:8081"

//前置拦截
axios.interceptors.request.use(config => {
    return config
})

//后置拦截
axios.interceptors.response.use(response => {
    let res = response.data
    if (res.code === 200){
        return response
    }else{  //这里只是会截取到密码错误，但用户错误就不会截取到，而是在error内
        //如果不是200则发送弹窗报错
        ElMessage.error(response.data.msg)
        //返回一个异常提示就不会继续往下走了 不+的话 res=>的里面 还是会继续走的
        return Promise.reject(response.data.msg)    //返回异常信息
    }
},
    // 捕获并处理后台异常信息
    error => {
        //将异常信息显示跟清晰
        console.log(error)
        //error不为空则输出具体错误信息
        if(error.response.data){
            error.message = error.response.data.msg
            console.log("===============")
            console.log(error.message);
            console.log("===============")
        }
        if (error.response.status == 401){
            //返回登录前要清空token和userInfo
            store.commit('REMOVE_INFO')
            //跳转登录页面
            router.push("/login")
        }
        ElMessage.error(error.message)
        return Promise.reject(error)
    }
)